|
Date : 19 juin 1991 Protection : Deux �crans de pr�sentation Programme : ANADISK v2.05, v2.06 et v2.07 TELEDISK v2.10 fr Outils : SOFT-ICE Fichier : ANADISK.EXE et TELEDISK.EXE Temps pass� : 20 MINUTES Soci�t� : SHAREWARE Divers : Origine : L.F. Num�ro : 093,094 Deux utilitaires bien au-dessus de la moyenne et en SHAREWARE. C'est juste un peu crispant de voir s'afficher avec une certaine longueur deux pages �crans vous rappelant de verser votre d�me � la contribution des programmeurs isol�s. Le jour o� je mettrais mon HEXUTIL en SHAREWARE j'y songerais. Il suffit de 'localiser' la chaine suivante: ANADISK: TELEDISK: 0F4E:0014 83C402 11AD:001A 83C402 0F4E:0017 9A........ 11AD:001D 9A........ 0F4E:001C 8E06.... 11AD:0022 8E06.... Et de placer EB03 ( JMP trois instructions plus loin ) � la place de la chaine commen�ant par 9A qui repr�sente le mn�monique d'un saut long intersegment ( 5 octets ). J'avais dans le fichier ANADISK remplacer le CALL 9A....... par 5 NOP. Cel� fonctionne mais ne fonctionne pas pour TELEDISK, il se plante avec un DIVIDE PAR ZERO. En fait v�rification faite avec SOFT-ICE les 2 derniers NOP sont �cras�s par 'quelque chose' ce qui n'arrange pas particuli�remnet la suite du traitement. Il vaut donc mieux placer un JMP court. De plus l'OFFSET du CALL long n'est pas dans le fichier d'origine. Il y est �crit plus tard, c'est rus� mais pas trop ! C'est en me placant en WRITE 9A sur la position m�moire 0F4E:0017 que j'ai trouv� une boucle STOSB qui puisait ses octets dans une chaine qui contenait 9A04005206, chaine que l'on trouve avec PCTOOLS. En pratique chercher dans tout les programmes qui affichent ce type d'�cran la chaine: 83C4029A........8E06 et remplacer 9A.. par EB03. Un double point repr�sente un octet dont la valeur est impossible � identifier mais ce n'est pas g�nant car cette chaine telle quelle est l� n'est pr�sente qu'une fois dans les fichiers En fait lorsque l'on veut �craser un saut long ( inter-segment ) la solution d'y placer 5 NOP ne fonctionne jamais puisqu'� l'initialisation d'un fichier EXE une table des sauts relogeables pr�sente dans le PSP est mise en place avec les valeurs de CS ad�quates en fonction de la position de chargement du fichier. Il est d�s lors �vident que les deux derniers NOP seront �cras�s par une valeur de CS correspondant au saut que l'on a effac�. Il faut donc imp�rativement placer un EB03 autrement dit un jump 3 octets plus loin afin de contourner ces deux octets. 16 d�cembre 1992 Il ne faut modifier que la premi�re occurence de cette chaine. FREDDY |